package com.eshore.norm.pojo.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 集群概览
 * </p>
 *
 * @author chenjl
 * @since 2024-01-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class NormClusterOverview implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    private Long id;

    /**
     * 资源池id
     */
    @ApiModelProperty(value = "资源池id")
    private Long configId;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createDate;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updateDate;

    /**
     * CPU总量
     */
    @ApiModelProperty(value = "CPU总量")
    private Long cpu;

    /**
     * CPU利用率
     */
    @ApiModelProperty(value = "CPU利用率")
    private Float cpuRatio;

    /**
     * CPU分配率
     */
    @ApiModelProperty(value = "CPU分配率")
    private Float cpuAllocateRatio;

    /**
     * 内存总量（G）
     */
    @ApiModelProperty(value = "内存总量")
    private Long memory;

    /**
     * 内存利用率
     */
    @ApiModelProperty(value = "内存利用率")
    private Float memoryRatio;

    /**
     * 内存分配率
     */
    @ApiModelProperty(value = "内存分配率")
    private Float memoryAllocateRatio;

    /**
     * 虚机总数
     */
    @ApiModelProperty(value = "虚机总数")
    private Long vmCount;

    /**
     * 运行虚机数
     */
    @ApiModelProperty(value = "运行虚机数")
    private Long runningCount;

    /**
     * 可用域id
     */
    @ApiModelProperty(value = "可用域id")
    @TableField("azId")
    private String azId;

    /**
     * 可用域名称
     */
    @ApiModelProperty(value = "可用域名称")
    @TableField("azName")
    private String azName;

    /**
     * 存储池UUID
     */
    @ApiModelProperty(value = "存储池UUID")
    private String storageId;

    /**
     * 存储池名称
     */
    @ApiModelProperty(value = "存储池名称")
    private String storageName;

    /**
     * 物理存储类型(SSD超高速，SAS高效，HDD机械硬盘, 3PAR，RAID，OTHERS 其它)
     */
    @ApiModelProperty(value = "物理存储类型")
    private String storageType;

    /**
     * 存储池容量（T）
     */
    @ApiModelProperty(value = "存储池容量")
    @TableField("STORAGE")
    private Float storage;

    /**
     * 物理维度利用率
     */
    @ApiModelProperty(value = "物理维度利用率")
    private Float storageRatio;

    /**
     * 物理维度分配率
     */
    @ApiModelProperty(value = "物理维度分配率")
    private Float storageAllocateRatio;


}
